package models;

import play.*;
import play.db.jpa.*;
import play.mvc.With;

import javax.persistence.*;

import controllers.Secure;

import java.util.*;

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Perfil extends Model {

	@OneToMany
	private Collection<Alimento> alimentosDesagradables;

	@OneToOne
	private Usuario usuario;

	private String mailAlternativoSugerencias;
	
	private String nombreApellidoPerfil;

	private Boolean habilitarSugerencias;

	@Enumerated(EnumType.STRING)
	private FrecuenciaSugerencias frecuenciaSugerencias;

	
	public Perfil(Usuario usuario) {
		super();
		this.usuario = usuario;
		this.mailAlternativoSugerencias = usuario.getEmail();
		this.habilitarSugerencias = false;
		this.nombreApellidoPerfil = usuario.getNombre();
	}

	public Perfil(Usuario usuario, String mailAlternativoSugerencias, Boolean habilitarSugerencias,
			FrecuenciaSugerencias frecuenciaSugerencias) {
		super();
		this.usuario = usuario;
		this.mailAlternativoSugerencias = mailAlternativoSugerencias;
		this.habilitarSugerencias = habilitarSugerencias;
		this.frecuenciaSugerencias = frecuenciaSugerencias;
	}

	public Collection<Alimento> getAlimentosDesagradables() {
		return alimentosDesagradables;
	}

	public void setAlimentosDesagradables(Collection<Alimento> alimentosDesagradables) {
		this.alimentosDesagradables = alimentosDesagradables;
	}

	public static Perfil findPerfil(Long modelCurrentUserId) {
		return find("usuario_id = ?", modelCurrentUserId).first();
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getMailAlternativoSugerencias() {
		return mailAlternativoSugerencias;
	}

	public void setMailAlternativoSugerencias(String mailAlternativoSugerencias) {
		this.mailAlternativoSugerencias = mailAlternativoSugerencias;
	}

	public FrecuenciaSugerencias getFrecuenciaSugerencias() {
		return frecuenciaSugerencias;
	}

	public void setFrecuenciaSugerencias(FrecuenciaSugerencias frecuenciaSugerencias) {
		this.frecuenciaSugerencias = frecuenciaSugerencias;
	}

	public Boolean getHabilitarSugerencias() {
		return habilitarSugerencias;
	}

	public void setHabilitarSugerencias(Boolean habilitarSugerencias) {
		this.habilitarSugerencias = habilitarSugerencias;
	}

	public String getNombreApellidoPerfil() {
		return nombreApellidoPerfil;
	}

	public void setNombreApellidoPerfil(String nombreApellidoPerfil) {
		this.nombreApellidoPerfil = nombreApellidoPerfil;
	}

}
